Most electronic devices have an electronic identifier code associated them. The codes typically consist of two or more fields. The first field is the Manufacturer's ID that identifies the company that makes the product. The second one refers to the family of products that the device belongs to. These codes are permanently stored in the device and can be read by an external device via an identification query.
System programmers use the identification codes to adjust the system to the device. For example, system programmers use the codes to determine algorithms required to write patterns to non-volatile memory devices. In some systems, these codes are used to determine the memory block sizes, the voltage ranges, etc. that are necessary to communicate with these devices.
The first manufacturer that produces a device often collaborates with software developers to use their ID codes. That is, the system is programmed to look for a specific ID before the system will support a device. As such, a second manufacturer who develops a compatible product cannot implement the new product in existing systems. This is due to the incompatibility of the ID codes.
Further if the system manufacturer decides to support another device in their system instead of the original device, the software query code that was loaded on the system must be changed to be able to use the new manufacturer. This is sometimes very difficult since the product may be out of the development cycle and would make it more difficult for end users of such devices to change manufacturers, even though the new devices may have advantages in the area of cost or reliability.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for integrated circuits that can be used in a system designed for prior integrated circuits.